//
// Created by mmz on 2022/4/13.
//

#ifndef HERORM2022_CLASSIFY_H
#define HERORM2022_CLASSIFY_H

#include <Eigen/Dense>
#include <opencv2/core.hpp>
#include <opencv2/core/eigen.hpp>
#include <string>
#include <vector>
#include "opencv2/dnn.hpp"
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>



class Classify {
private:
    std::string OnnxPath = "../src/classifier/model.onnx";
    cv::dnn::Net net = cv::dnn::readNetFromONNX(OnnxPath);
    Eigen::MatrixXd softmax(const Eigen::MatrixXd &input);

public:
    explicit Classify();
    ~Classify() = default;

    int operator()(cv::Mat &image);

};


#endif //HERORM2022_CLASSIFY_H
